@echo off
echo ========== ASR ONNX FFI 部署状态检查 ==========
echo.

echo 【系统信息】
echo 当前目录: %CD%
echo 用户目录: %USERPROFILE%
echo.

echo 【检查可执行文件位置】
where flutter 2>nul
if %errorlevel% equ 0 (
    echo ✓ Flutter 已安装
) else (
    echo ✗ Flutter 未找到
)

where dart 2>nul
if %errorlevel% equ 0 (
    echo ✓ Dart 已安装
) else (
    echo ✗ Dart 未找到
)
echo.

echo 【检查项目文件】
if exist "pubspec.yaml" (
    echo ✓ pubspec.yaml 存在
) else (
    echo ✗ pubspec.yaml 不存在
)

if exist "lib\asr_ffi.dart" (
    echo ✓ lib\asr_ffi.dart 存在
) else (
    echo ✗ lib\asr_ffi.dart 不存在
)

if exist "assets\dlls" (
    echo ✓ assets\dlls 目录存在
    dir /b "assets\dlls\*.exe" 2>nul | find /c /v "" > temp_count.txt
    set /p exe_count=<temp_count.txt
    del temp_count.txt
    echo   - 可执行文件数量: %exe_count%
) else (
    echo ✗ assets\dlls 目录不存在
)

if exist "assets\models" (
    echo ✓ assets\models 目录存在
    dir /ad "assets\models" 2>nul | find /c "Directory" > temp_count.txt
    set /p model_count=<temp_count.txt
    del temp_count.txt
    echo   - 模型目录数量: %model_count%
) else (
    echo ✗ assets\models 目录不存在
)
echo.

echo 【检查构建目录】
if exist "build\windows" (
    echo ✓ build\windows 存在
) else (
    echo ✗ build\windows 不存在（尚未构建）
)
echo.

echo 【预期的运行时目录】
echo 开发环境运行时目录: %CD%\build\windows\runner\Debug\funasr_runtime
echo 发布环境运行时目录: %CD%\build\windows\runner\Release\funasr_runtime
echo.

echo 【检查开发环境部署】
set DEBUG_RUNTIME=%CD%\build\windows\runner\Debug\funasr_runtime
if exist "%DEBUG_RUNTIME%" (
    echo ✓ Debug 运行时目录存在: %DEBUG_RUNTIME%
    
    if exist "%DEBUG_RUNTIME%\dlls\funasr-onnx-offline.exe" (
        echo   ✓ 主要可执行文件存在
    ) else (
        echo   ✗ 主要可执行文件不存在
    )
    
    if exist "%DEBUG_RUNTIME%\dlls\onnxruntime.dll" (
        echo   ✓ ONNX 运行时库存在
    ) else (
        echo   ✗ ONNX 运行时库不存在
    )
    
    if exist "%DEBUG_RUNTIME%\models" (
        echo   ✓ 模型目录存在
        dir /ad "%DEBUG_RUNTIME%\models" 2>nul | find /c "Directory" > temp_count.txt
        set /p deployed_models=<temp_count.txt
        del temp_count.txt
        echo     - 已部署模型数量: %deployed_models%
    ) else (
        echo   ✗ 模型目录不存在
    )
) else (
    echo ✗ Debug 运行时目录不存在: %DEBUG_RUNTIME%
)
echo.

echo 【检查发布环境部署】
set RELEASE_RUNTIME=%CD%\build\windows\runner\Release\funasr_runtime
if exist "%RELEASE_RUNTIME%" (
    echo ✓ Release 运行时目录存在: %RELEASE_RUNTIME%
    
    if exist "%RELEASE_RUNTIME%\dlls\funasr-onnx-offline.exe" (
        echo   ✓ 主要可执行文件存在
    ) else (
        echo   ✗ 主要可执行文件不存在
    )
    
    if exist "%RELEASE_RUNTIME%\dlls\onnxruntime.dll" (
        echo   ✓ ONNX 运行时库存在
    ) else (
        echo   ✗ ONNX 运行时库不存在
    )
    
    if exist "%RELEASE_RUNTIME%\models" (
        echo   ✓ 模型目录存在
        dir /ad "%RELEASE_RUNTIME%\models" 2>nul | find /c "Directory" > temp_count.txt
        set /p deployed_models=<temp_count.txt
        del temp_count.txt
        echo     - 已部署模型数量: %deployed_models%
    ) else (
        echo   ✗ 模型目录不存在
    )
) else (
    echo ✗ Release 运行时目录不存在: %RELEASE_RUNTIME%
)
echo.

echo 【部署建议】
echo 1. 确保运行 'flutter run -d windows' 至少一次以创建运行时文件
echo 2. 对于发布部署，运行 'flutter build windows --release'
echo 3. 运行时文件会自动提取到可执行文件同目录的 funasr_runtime 文件夹
echo 4. 部署时需要将整个 funasr_runtime 文件夹与可执行文件一起分发
echo.

echo ========== 检查完成 ==========
pause
